package com.tes.common;

import java.rmi.RemoteException;
import java.util.List;

import javax.ejb.Local;

import com.tes.VO.PersonaVO;
import com.tes.VO.PriorizacionVO;
import com.tes.VO.ProyectoPriorizacionVO;
import com.tes.VO.ProyectoVO;
import com.tes.VO.RequerimientoVO;
import com.tes.VO.UsuarioPriorizacionVO;
import com.tes.entity.Persona;

@Local
public interface ProyectoADMLocal {

	public void agregarPersonaProyecto(PersonaVO gerente)throws RemoteException;
	public PersonaVO obtenerPersonaProyecto()throws RemoteException;
	public void cancelarCreaconProyecto()throws RemoteException;
	public void guardarProyecto(String fecha, String nombre, String descripcion, String metodo, int idGerenteDesarrollo, int idGerenteNegocio)throws RemoteException;
	public List<ProyectoVO> obtenerProyectos(String numero, String nombre)throws RemoteException;
	public String eliminarProyecto(int numero)throws RemoteException;
	public RequerimientoVO obtenerRequerimiento(int idRequerimiento) throws RemoteException;
	public void agregarPersona(PersonaVO persVO)throws RemoteException;
	public boolean verificarFuncionalidad(String uRL)throws RemoteException;
	public List<ProyectoVO> obtenerProyectosPersona(int idPersona);
	public String agregarRequerimientoProyecto(int idProyecto, List<RequerimientoVO> requerimientos);
	public Persona buscarPersona(int idGerenteDesarrollo)throws RemoteException;
	public List<PriorizacionVO> obtenerPriorizacionUsuarioProyecto(int idPersona, int idProyecto)throws RemoteException;
	public List<RequerimientoVO> obtenerRequerimientosProyecto(int idProyecto) throws RemoteException;
	public void guardarPriorizacionUsuario(List<PriorizacionVO> priorizaciones, boolean esPriorizacionFinalPG) throws RemoteException;
	public String eliminarRequerimientos(List<RequerimientoVO> requerimientosSel, int idProyecto)throws RemoteException;
	public String asignarDesarrolladorProyecto(PersonaVO desarrollador, int idProyectoSeleccionado)throws RemoteException;
	public String asignarUNegocioProyecto(PersonaVO usuarioNegocio, int idProyectoSeleccionado)throws RemoteException;
	public ProyectoPriorizacionVO obtenerResultadoPriorizacion100P(int idProyectoSeleccionado);
	public ProyectoPriorizacionVO obtenerResultadoPriorizacionPG(int idProyectoSeleccionado);
	public ProyectoPriorizacionVO obtenerResultadoPriorizacionBST(int idProyectoSeleccionado);
	public List<UsuarioPriorizacionVO> obtenerUsuariosPriorizacion100P(int idProyectoSeleccionado)throws RemoteException;
	public List<UsuarioPriorizacionVO> obtenerUsuariosPriorizacionPG(int idProyectoSeleccionado)throws RemoteException;
	public List<UsuarioPriorizacionVO> obtenerUsuariosPriorizacionBST(int idProyectoSeleccionado)throws RemoteException;
	public List<PriorizacionVO> obtenerResultadoPriorizacionPriorizadoTotal(int idProyectoSeleccionado)throws RemoteException;
	public int obtenerCantPriorizacionesPendientesDelSector(int idProyecto, String perfil)throws RemoteException;
	public boolean priorizacionGerenteRealizada (int idProyecto, String perfil)throws RemoteException;
	public List<PriorizacionVO> obtenerPriorizacionFinalPG(int idProyecto)throws RemoteException;
	public boolean existenPriorizacionesGerentes(int idProyecto)throws RemoteException;
	public List<PriorizacionVO> inicializarPriorizacionFinalPG(int idProyecto)throws RemoteException;
	public void guardarPriorizacionFinalPG(List<PriorizacionVO> priorizaciones, PersonaVO usuario, int idProyecto)throws RemoteException;
	public List<ProyectoVO> obtenerProyectosCerradosPersona(int id)throws RemoteException;
	public boolean cerrarProyecto(int idProyecto)throws RemoteException;
}
